凍仁分享的 文字界面的字典 sdcv 這個指令很實用,我也再錦上添花加碼有關指令查字典的工具。
DICT 從縮寫所代表的全名的字面意思是字典網路協定,可以藉由網路的請求獲得查詢結果的機制。如果就命令列模式的字典查詢,除了 sdcv 之外,dict是另個可用的指令。
安裝使用
pacman -S dictd 即會安裝有 dict 的 server 及 client 的套件,來試試看:
$ dict -I
dictd 1.12.0/rf on Linux 3.0.0-14-server
On pan.alephnull.com: up 10+10:16:43, 1897319 forks (7580.8/hour)
Database Headwords Index Data Uncompressed
gcide 203645 3859 kB 12 MB 38 MB
wn 147311 3002 kB 9247 kB 29 MB
moby-thes 30263 528 kB 10 MB 28 MB
...
dict 預設查詢的主機是 dict.org 其 IP 就是 pan.alephnull.com,顯示了相關系統的情況,並列出供查詢的資料庫,或說字典有哪些。
若用 dict delicious 查該字,會出現:
3 definitions found
From The Collaborative International Dictionary of English v.0.48 [gcide]:
Delicious \De*li"cious\, a. [OF. delicieus, F. d['e]licieux, L.
deliciosus, fr. deliciae delight, fr. delicere to allure. See
{Delight}.]
1. Affording exquisite pleasure; delightful; most sweet or
grateful to the senses, especially to the taste; charming.
[1913 Webster]
...
等三種資料庫或說字典的來源,落落長,如果只要指定 WordNet 提供的解釋,改輸入
$ dict -d wn delicious
1 definition found
From WordNet (r) 3.0 (2006) [wn]:
delicious
adj 1: greatly pleasing or entertaining; "a delightful
surprise"; "the comedy was delightful"; "a delicious
joke" [syn: {delightful}, {delicious}]
2: extremely pleasing to the sense of taste [syn: {delectable},
{delicious}, {luscious}, {pleasant-tasting}, {scrumptious},
{toothsome}, {yummy}]
n 1: variety of sweet eating apples
換不同的主機查詢
如果想要換不同的主機查詢,這個清單列出其他提供 dict 服務的名單:
DICT protocol server list
可以編輯家目錄裡的 .dictrc 的內容為 server dict.tw 後,發現 dict://dict.tw 沒有作用,而改設 server dict.uni-leipzig.de,發現提供很多種的語言:
dictd 1.10.4/rf on Linux 2.6.24.3.pcai055
On pcai055.informatik.uni-leipzig.de: up 7+02:44:13, 2925 forks (17.1/hour)
Database Headwords Index Data Uncompressed
afr-deu 3806 52 kB 50 kB 133 kB
afr-eng 5135 72 kB 58 kB 153 kB
bre-fra 32344 524 kB 530 kB 2002 kB
ces-eng 494 6 kB 5 kB 10 kB
ckb-kmr 7858 114 kB 147 kB 384 kB
cro-eng 79817 1790 kB 1007 kB 2821 kB
cym-eng 12636 191 kB 111 kB 350 kB
cze-eng 493 6 kB 5 kB 11 kB
dan-eng 4003 54 kB 43 kB 103 kB
deu-eng 81622 1615 kB 1346 kB 4177 kB
deu-fra 8174 120 kB 81 kB 216 kB
deu-ita 4460 64 kB 38 kB 99 kB
...
試了幾個似乎找不到可以查到中文的,那就自行建立,就是在自己的主機建立自己的 dictd。
建立自己的字典站
先測試自己建個 同義字辭典。
依照這篇 Dictionary access under Linux 把dict 的服務建起來。
下載同義字辭典的檔案:
ftp://ftp.wu-wien.ac.at/pub/lib/lexica/dict.org/pre/debian/dict-moby-thesaurus_1.0-5.tar.gz
解開後把檔案放在如下所在:
/usr/share/dictd/moby-thesaurus.dict.dz
/usr/share/dictd/moby-thesaurus.index
然後編輯 /etc/dict/dictd.conf 最後面加上這兩行:
database moby { data "/usr/share/dictd/moby-thesaurus.dict.dz"
index "/usr/share/dictd/moby-thesaurus.index"}
啟動 dictd 的服務 systemd start dictd
編輯 ~/.dictrc 內容為 server localhost
[singernew@ithelp dict]$ dict -I
dictd 1.12.1/rf on Linux 3.11.1-1-ARCH
On ithelp: up 12.000, 1 fork (300.0/hour)
Database Headwords Index Data Uncompressed
moby 30263 528 kB 10 MB 28 MB
執行結果是成功的。
現再把中文的字典檔案抓下安裝在同目錄:
先抓下網路上提供的中文字典檔:
<ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/local-distfiles/rafan/chinese/dict-zh-1.6.tar.gz>
再重編 /etc/dict/dictd.conf 的內容為:
database moby { data "/usr/share/dictd/moby-thesaurus.dict.dz"
index "/usr/share/dictd/moby-thesaurus.index"}
database cedict { data "/usr/share/dictd/cedict.dict.dz"
index "/usr/share/dictd/cedict.index"}
database moecomp { data "/usr/share/dictd/moecomp.dict.dz"
index "/usr/share/dictd/moecomp.index"}
database netterm { data "/usr/share/dictd/netterm.dict.dz"
index "/usr/share/dictd/netterm.index"}
database pydict { data "/usr/share/dictd/pydict.dict.dz"
index "/usr/share/dictd/pydict.index"}
再重啟動 dictd 的服務。
[singernew@ithelp dict]$ dict -I
dictd 1.12.1/rf on Linux 3.11.1-1-ARCH
On ithelp: up 4.000, 1 fork (900.0/hour)
Database Headwords Index Data Uncompressed
moby 30263 528 kB 10 MB 28 MB
cedict 26348 203 kB 476 kB 1092 kB
moecomp 67234 1705 kB 861 kB 2476 kB
netterm 6454 97 kB 52 kB 121 kB
pydict 177730 3254 kB 2662 kB 5753 kB
得知字典檔都成為服務內容了。
亂查一些字:
[singernew@ithelp dict]$ dict linux
1 definition found
From pydict data [pydict]:
Linux
使用於PC上的unix系統
[singernew@ithelp dict]$ dict unix
2 definitions found
From Taiwan MOE computer dictionary [moecomp]:
UNIX
UNIX作業系統; UNIX操作系統
From pydict data [pydict]:
UNIX
UNIX操作系統 ; (INTERNET上常見的操作系統,UNIX本身非常適用於網絡操作)
也都是UTF-8的正常中文字出現。
查一些單字,同義字會出現一大堆,就不列舉。
要用字典指令,結果最後自行架個字典協定的服務。真是能夠學到東西的環境…
參考資料:
6 of the Best Free Linux Dictionary Tools
How to look up dictionary via command line on Linux
Best Dictionary Software for Linux
FreeDict Wiki!
dictd
星際譯王
The DICT Development Group